#ifndef _MENU_CONTAINER_H_
#define _MENU_CONTAINER_H_

#ifdef _WIN32
#pragma once
#endif

#include <map>
#include <string>

#include "soundmanager.h"
#include "menu.h"

using std::map;
using std::string;

namespace menu
{
    void keyboardCallback(const DEVICE_EVENT &evt);
};

class CMenuContainer
{
public:
    static CMenuContainer *getInstance();

    CMenu *addMenu(const string &szReference, float fX, float fY);
    CMenu *addMenu(const string &szReference, CMenu *pMenu);
    CMenu *getMenu(string szReference) const;
    bool removeMenu(string szReference);

    void keyboardEvent(const DEVICE_EVENT &evt);

    void render();

private:
    CMenuContainer();
    ~CMenuContainer();

    map<string, CMenu*> m_arrMenus;
};

#endif